import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class ListNoUpdateCode {
    public static void main(String[] args) {
        /**
         * 创建不可变list集合
         * List.of
         * */
//        List<String> list = List.of("a","b","c");
//        System.out.println(list);

        /**
         * 创建不可变的set集合
         * Set.of
         * 当我们要获取一个不可变的set集合时 里面的参数需要保持唯一性
         * */
//        Set<String> set = Set.of("a","b","c");
//        System.out.println(set);

        /**
         * 创建map不可变集合
         * 1.键是不能重复的
         * 2.最多可创建10个键值对（20个参数）
         * */
//        Map<String, String> map = Map.of("张三", "南京", "李四", "北京", "王五", "上海", "赵六", "广州", "孙七", "深圳");
//        Set<String> keys = map.keySet();
//        for (String key : keys) {
//            System.out.println(key+"="+map.get(key));
//        }
//
//        System.out.println("-------------------------------------");
//
//
//        Set<Map.Entry<String, String>> entries = map.entrySet();
//        for (Map.Entry<String, String> entry : entries) {
//            System.out.println(entry.getKey() + "=" + entry.getValue());
//        }

        /**
         * 创建map的不可变集合，键值对的数量超过十个
         * 1.创建一个普通的map集合
         * */
        HashMap<String, String> hm = new HashMap<>();
        hm.put("张三", "南京");
        hm.put("李四", "北京");
        hm.put("王五", "上海");
        hm.put("赵六", "北京");
        hm.put("孙七", "深圳");
        hm.put("周八", "杭州");
        hm.put("吴九", "宁波");
        hm.put("郑十", "苏州");
        hm.put("刘一", "无锡");
        hm.put("陈二", "嘉兴");
        hm.put("aaa", "111");
        hm.put("bbb", "222");
        hm.put("ccc", "333");
        hm.put("ddd", "444");
        hm.put("eee", "555");
        hm.put("fff", "666");
        hm.put("ggg", "777");
        hm.put("hhh", "888");
        hm.put("iii", "9999");
        hm.put("jjj", "0000");
        hm.put("kkk", "0001");
        hm.put("lll", "0002");
        hm.put("mmm", "0003");
        hm.put("nnn", "0004");

        Set<Map.Entry<String, String>> entries = hm.entrySet();
        Map.Entry[] arr = entries.toArray(new Map.Entry[entries.size()]);
        for (Map.Entry entry : arr) {
            System.out.println(entry.getKey() + "=" + entry.getValue());
        }

        //不可变的map集合 不存在20个值的限制
        Map map=Map.ofEntries(arr);
        System.out.println(map);
    }
}
